/*
 * Input.h
 *
 *  Created on: 25/04/2010
 *      Author: Nenem
 */

#ifndef INPUT_H_
#define INPUT_H_

#include <SDL/SDL.h>
#include <SDL/SDL_events.h>
#include <SDL/SDL_joystick.h>
#include "Controller.h"

//#define INPUT_UP = SDLK_UP;
//#define INPUT_DOWN = SDLK_DOWN;
//#define INPUT_LEFT = SDLK_LEFT;
//#define INPUT_RIGHT = SDLK_RIGHT;
//#define INPUT_RUN = SDLK_x;
//#define INPUT_ACTION = SDLK_a;
//#define INPUT_CHANGE_SA_LEFT = SDLK_d;
//#define INPUT_CHANGE_SA_RIGHT = SDLK_c;
//#define INPUT_SPECIAL_ATACK = SDLK_a;
//#define INPUT_PLAYER_MENU = SDLK_s;
//#define INPUT_MENU = SDLK_RETURN;

class Input {
	int (*KEY_UP)(SDL_Event*, Controller*, Input *);
	int (*KEY_DOWN)(SDL_Event*, Controller*, Input *);
	int (*KEY_LEFT)(SDL_Event*, Controller*, Input *);
	int (*KEY_RIGHT)(SDL_Event*, Controller*, Input *);
	int (*KEY_a)(SDL_Event*, Controller*, Input *);
	int (*KEY_x)(SDL_Event*, Controller*, Input *);
	int (*KEY_s)(SDL_Event*, Controller*, Input *);
	int (*KEY_z)(SDL_Event*, Controller*, Input *);
	int (*KEY_ENTER)(SDL_Event*, Controller*, Input *);
public:
	//Game Running
	//if false exit the game
	bool running;
	Input();
	virtual ~Input();
	bool onEvent(SDL_Event *event, Controller *control);
//	int movRight(SDL_Event *event, Character *player);
//	int movLeft(SDL_Event *event, Character *player);
//	int movUp(SDL_Event *event, Character *player);
//	int movDown(SDL_Event *event, Character *player);
//	int run(SDL_Event *event, Character *player);
//	int action(SDL_Event *event, Character *player);
};

#endif /* INPUT_H_ */
